// 导入处理路径的 path 核心模块
const req = require("express/lib/request");
const path = require("path");
// 导入数据库操作模块
const query = require("../db/index");

//发布新文章的处理函数
exports.addArticle = (req, res) => {
  // 手动判断是否上传了文章封面
  if (!req.file || req.file.fieldname !== "cover_img")
    return res.cc("文章封面是必选参数！");

  // TODO：表单数据合法，继续后面的处理流程...
  // TODO：证明数据都是合法的，可以进行后续业务逻辑的处理
  // 处理文章的信息对象
  const articleInfo = {
    // 标题、内容、状态、所属的分类Id
    ...req.body,
    // 文章封面在服务器端的存放路径
    cover_img: path.join("/uploads", req.file.filename),
    // 文章发布时间
    pub_date: new Date(),
    // 文章作者的Id
    author_id: req.user.id,
  };
  const sql = `insert into ev_articles set ?`;
  query(sql, articleInfo)
    .then((result) => {
      // 执行 SQL 语句成功，但是影响行数不等于 1
      if (result.affectedRows !== 1) return res.cc("发布文章失败！");
      //发布文章成功
      res.cc("发布文章成功!", 0);
    })
    .catch((err) => res.cc(err));
};
